.TH std::basic_stringbuf::init_buf_ptrs 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::basic_stringbuf::init_buf_ptrs \- std::basic_stringbuf::init_buf_ptrs

.SH Synopsis
   void init_buf_ptrs();  (exposition only*)

   Initializes the input and output sequences from buf according to mode. buf and mode
   are exposition-only data members of *this.

   Immediately after this function returns:

     * If std::ios_base::out is set in mode, pbase() points to buf.front() and epptr()
       >= pbase() + buf.size() is true;
          * in addition, if std::ios_base::ate is set in mode, pptr() == pbase() +
            buf.size() is true,
          * otherwise pptr() == pbase() is true.
     * If std::ios_base::in is set in mode, eback() points to buf.front(), and gptr()
       == eback() && egptr() == eback() + buf.size() is true.

.SH Notes

   For efficiency reasons, stream buffer operations can violate invariants of buf while
   it is held encapsulated in the std::basic_stringbuf, e.g., by writing to characters
   in the range [buf.data() + buf.size(), buf.data() + buf.capacity()).

   All operations retrieving a std::basic_string from buf ensure that the
   std::basic_string invariants hold on the returned value.

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

      DR    Applied to            Behavior as published              Correct behavior
                       calling init_buf_ptrs() made                 makes
   LWG 1448 C++98      pptr() == pbase() + buf.data()               pptr() == pbase() +
                       for streams that are both input and output   buf.size()
                       streams                                      for append streams
